iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Odoo

利用【AI】工具,聰明進行 Odoo 程式開發系列 第 21

Day21:個案二:投資管理系統(1)-AI輔助開發進階運用 Readme及Rules

  • 分享至 

  • xImage
  •  

本篇會持續調整及更新

使用ChatGPT 先期規劃系統

我想使用 chatgpt 或cursor 等AI工具開發 odoo17 addons

個人投資管理系統-系統需求及相關使用者故事
簡易內容
1.個人股票投資
2.個人股票每日漲跌記錄
3.所有股票漲跌記錄
4.購買及賣出建議

請協助我定義相關系統邏輯及思考 
建立一個長期維護的readme.txt

readme.txt 可用中文進行說明

ChatGPT 回應

為協助您開發個人投資管理系統的 Odoo 17 插件,以下是系統邏輯及相關使用者故事的建議,並為您撰寫一個長期維護的 readme.txt 範本,幫助未來的開發者理解系統設計和功能。

系統邏輯與架構設計

  1. 個人股票投資

    • 使用者能夠新增、編輯和刪除個人擁有的股票。
    • 每支股票將包含以下屬性:
      • 股票代碼(symbol)
      • 股票名稱
      • 購買價格
      • 購買日期
      • 購買數量
  2. 個人股票每日漲跌記錄

    • 每日自動匯入或手動輸入股票的開盤價、收盤價、最高價、最低價和漲跌幅。
    • 支援自動爬取市場資訊,定期更新個人股票的漲跌情況。
  3. 所有股票漲跌記錄

    • 追蹤市場上所有的股票漲跌情況,並定期更新。
    • 記錄每支股票的歷史價格變動,並提供查詢和過濾功能。
  4. 購買及賣出建議

    • 基於使用者設定的條件(如漲跌幅、技術指標等)給予購買和賣出建議。
    • 提供自定義的策略模板,例如移動平均線交叉策略、RSI策略等。

使用者故事

  1. 作為投資者,我想要新增我持有的股票資訊,這樣我可以管理我的投資組合。
  2. 作為投資者,我希望系統每天自動記錄股票的漲跌情況,這樣我可以隨時檢視股票的最新動態。
  3. 作為投資者,我希望能查看所有市場股票的漲跌記錄,幫助我做出更好的投資決策。
  4. 作為投資者,我希望系統能基於漲跌幅或技術指標提供購買或賣出的建議,這樣我可以更高效地進行操作。

長期維護的 readme.txt

# 個人投資管理系統 Odoo 17 Add-on

## 概述
本系統是一個針對個人股票投資的管理系統,旨在提供股票投資追蹤、每日價格更新、購買賣出建議等功能。此插件基於 Odoo 17 開發,支援長期維護和擴展。

## 功能
1. 個人股票投資管理:
   - 新增、編輯和刪除個人股票資訊。
   - 包括股票代碼、名稱、購買價格、日期和數量。
   
2. 每日股票漲跌記錄:
   - 每日自動或手動輸入股票的開盤、收盤、最高、最低價以及漲跌幅。

3. 所有股票漲跌記錄:
   - 記錄市場所有股票的漲跌情況,支援歷史查詢與過濾。

4. 購買及賣出建議:
   - 基於使用者自定義條件(如漲跌幅、技術指標等)提供購買或賣出建議。

## 系統需求
- Odoo 17
- Python 3.8+
- 需要安裝以下依賴項目:
  - `requests`:用於市場資料爬取
  - `pandas`:用於數據處理

## 安裝步驟
1. 確保 Odoo 17 環境已設置完成。
2. 將此 Add-on 放置於 Odoo 的 `addons` 資料夾中。
3. 重新啟動 Odoo 服務,並進入 Odoo 網頁後端,更新應用模組列表。
4. 安裝個人投資管理系統模組。

## 模組結構

addons/
personal_investment_management/
├── init.py
├── manifest.py
├── models/
│ ├── personal_stock.py # 個人股票模型
│ ├── daily_price.py # 每日漲跌記錄模型
│ └── stock_market.py # 市場股票漲跌模型
└── views/
├── personal_stock_view.xml # 個人股票管理界面
├── daily_price_view.xml # 每日漲跌記錄界面
└── stock_market_view.xml # 市場股票界面


## 使用方法
1. **個人股票管理**:用戶可以透過「個人股票」功能頁面,新增並管理個人持有的股票。
2. **每日股票記錄**:系統會每日自動更新股票價格,用戶也可以手動更新。
3. **市場股票管理**:用戶可以查看並篩選所有市場股票的歷史價格資料。
4. **投資建議**:在「投資建議」頁面,系統會基於使用者設定的條件給出買賣建議。

## 後續開發計畫
1. 增加更多技術指標,豐富投資建議功能。
2. 整合第三方股票 API,實現實時價格更新。
3. 提供更多數據視覺化工具,讓用戶更直觀分析投資情況。

## 聯絡方式
如有任何問題或建議,請聯繫開發團隊:developer@example.com

readme.txt 範本可以隨著開發過程的深入,持續更新和擴充。希望這能幫助您進行 Odoo 17 插件的開發與維護!

AI輔助開發進階運用-Rules for AI

1. 保持模組結構簡潔

  • 規則:每個主要功能(例如股票管理、每日漲跌記錄、投資建議)都應該有自己的 model 和對應的 view,分開管理邏輯和界面顯示。
  • 邏輯思考:這樣可以確保系統的模組結構清晰,日後維護時可以快速定位功能。

2. 使用 Odoo 17 的新視圖格式

  • 規則:Odoo 17 引入了新的 owl 框架,盡量使用新的 JavaScript 元件和現代前端技術來打造互動式界面。
  • 邏輯思考:新框架提高了性能和用戶體驗,減少了傳統頁面渲染的延遲問題,能幫助你提供即時數據反饋給投資者。

3. 模型設計遵循 Odoo ORM 規範

  • 規則:所有模型(例如個人股票、每日漲跌記錄、投資建議)必須繼承 models.Model,並使用 Odoo ORM(對象關係映射)來處理數據操作。
  • 邏輯思考:Odoo 的 ORM 可以自動處理數據庫操作,減少了你手寫 SQL 的風險,並且能與 Odoo 的其他模組無縫整合。

4. 命名約定和欄位設計

  • 規則:所有字段應該使用描述性的英文名稱,並按照 Odoo 命名約定,例如 stock_symbolpurchase_date 等。避免使用非標準縮寫或過於簡短的名稱。
  • 邏輯思考:清晰的命名可以幫助團隊和未來維護者理解字段的用途,減少溝通上的混淆。

5. 靈活使用 One2manyMany2one 關聯

  • 規則:設計模型時,如果股票和記錄存在一對多或多對一的關聯(例如,一個股票可以有多筆每日漲跌記錄),應該使用 One2manyMany2one 關聯。
  • 邏輯思考:這能讓數據之間的關聯保持一致,並且可以在界面上方便查詢和過濾相關記錄,提升系統的可操作性。

6. 合理規劃計算欄位

  • 規則:使用 Odoo 的計算字段功能(@api.depends)來自動計算一些投資相關的數據,例如投資回報率、每日漲跌幅等。
  • 邏輯思考:這樣能夠實時反映計算結果,並且減少用戶手動計算的步驟,提升整體使用體驗。

7. 使用安全和訪問控制

  • 規則:根據不同用戶角色(如投資者、系統管理員),設置適當的權限和訪問控制,使用 Odoo 的 access rightsrecord rules 功能。
  • 邏輯思考:這能確保用戶只能看到他們有權限的資料,保護系統和用戶的數據安全。

8. 整合外部API獲取即時股市資訊

  • 規則:使用 Odoo 的 requests 模組,整合外部股市 API,定期拉取股票的即時價格和市場數據。
  • 邏輯思考:這不僅能夠保持數據最新,還能讓投資者更迅速地根據最新市場資訊做出決策。

9. 撰寫清晰的註解和文檔

  • 規則:每個代碼段都應有清楚的註解,解釋其功能和邏輯,並保持 README 檔案更新。
  • 邏輯思考:這樣可以幫助團隊成員快速理解系統邏輯,並能加速開發及未來擴展。

本章小節

內容參考來源
Yes

本章小節

在使用AI工具如Cursor進行開發時,有幾個實用技巧能幫助提升效率並確保專案的成功:

  1. 技巧一:總是在一個空的文件夾中開啟一個新專案
    開啟新專案時,確保使用全新的文件夾,避免混亂並保持項目結構的清晰。

  2. 技巧二:表述需求時盡量明確但謹慎
    在與AI工具或開發團隊溝通需求時,要明確描述需求,但也要小心保持靈活性,允許未來變更或調整。

  3. 技巧三:讓Cursor從項目一開始就寫readme文檔
    在專案的初期,就讓AI工具撰寫readme檔案,隨著專案進行不斷更新,這樣可幫助開發過程保持一致,且便於他人理解。

  4. 技巧四:讓Cursor寫代碼時寫清楚各個代碼塊的註解
    每個代碼塊應包含詳細的註解,說明其功能及目的,這樣有助於團隊成員理解代碼並進行維護。

  5. 技巧五:使用composer和chat功能時多@ codebase
    在Cursor的composer和chat功能中,常常@ codebase,可以幫助AI更好地理解上下文,產生更合適的代碼。

  6. 技巧六:常用的文檔鏈接加入到docs中
    將經常需要查閱的文件或參考資料鏈接加入到專案的docs文件夾中,方便快速檢索和學習。

  7. 技巧七:善用setting裡的rules for AI
    設定專案規則(rules for AI)來指導AI的行為,確保AI生成的代碼和建議符合專案的需求及標準。這可以避免不必要的錯誤,提高開發效率。


上一篇
Day20: Cursor 、VS Code 與Pycharm 共用Odoo17 開發目錄
下一篇
Day22:個案二:投資管理系統(2)-採用 Cursor 產生初始模組
系列文
利用【AI】工具,聰明進行 Odoo 程式開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言